package com.wing.user.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.wing.user.model.entity.Menu;
import com.wing.user.model.response.MenuVO;


import java.util.List;

/**
 * 菜单-Service
 *
 * @author
 */
public interface MenuService extends IService<Menu> {

    /**
     * 设置值
     *
     * @param menu
     *
     * @return
     */
    void setValue(Menu menu);

    /**
     * 列出所有和按钮
     *
     * @return {@link List <MenuVO>}
     */
    List<MenuVO> listAllAndButton();

    List<MenuVO> listAllMenuAndButton(Long roleId);

    /**
     * 通过用户id列表
     *
     * @param userId 用户id
     * @return {@link List<MenuVO>}
     */
    List<MenuVO> listByUserId(Long userId);

    /**
     * 按角色id列表
     *
     * @param roleIdList 角色id列表
     * @return {@link List<MenuVO>}
     */
    List<MenuVO> listByRoleIds(List<Long> roleIdList);

    /**
     * 通过角色id列表
     *
     * @param roleId 角色id
     * @return {@link List<MenuVO>}
     */
    List<MenuVO> listByRoleId(Long roleId);

    /**
     * 删除
     *
     * @param id id
     * @return int
     */
    void delete(Long id);

    MenuVO getMenuByUrl();
}
